package cn.edu.gduf.luowowo.website.util;

import cn.edu.gduf.luowowo.common.util.RedisKeys;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public abstract class CookieUtil {
    /**
     * 从请求对象中获取token
     */
    public static String getToken(HttpServletRequest request) {
        String token = null;
        Cookie[] cookies = request.getCookies();
        if (cookies != null && cookies.length > 0) {
            for (Cookie cookie : cookies) {
                if ("token".equals(cookie.getName())) {
                    token = cookie.getValue();
                    break;
                }
            }
        }
        return token;
    }

    /**
     * 设置cookie
     */
    public static void addCookie(HttpServletResponse response, String token) {
        Cookie cookie = new Cookie("token", token);
        //设置cookie的有效时间
        cookie.setMaxAge(RedisKeys.USER_TOKEN.getTime());
        //设置cookie的有效路径。"/"表示所有的路径都可以，不设置默认返回的有效路径是当前访问路径的上一级
        //假设当前访问的是.../a/b ,那默认的这个有效路径就是/a，
        //那么后面如果访问.../c/d就不是以/a开头的就都不会带上这个cookie
        cookie.setPath("/");
        response.addCookie(cookie);
    }
}
